package com.satan.juc.demo24;

import java.util.concurrent.atomic.AtomicIntegerArray;

public class AtomicIntegerArrayExample {
    public static void main(String[] args) {
        // 创建一个指定长度的新AtomicIntegerArray，默认初始值为0
        AtomicIntegerArray atomicArray = new AtomicIntegerArray(10);

        // 获取索引i处的元素
        int element = atomicArray.get(0);

        // 设置索引i处的元素为newValue
        atomicArray.set(0, 123);

        // 如果索引i处的元素等于expect，则以原子方式将该值设置为update
        boolean isUpdated = atomicArray.compareAndSet(0, 123, 234);

        // 以原子方式将索引i处的元素增加delta，并返回新值
        int addedValue = atomicArray.addAndGet(0, 5);

        // 获取索引i处的元素，并以原子方式将其增加delta
        int oldValue = atomicArray.getAndAdd(0, 5);

        // 以原子方式将索引i处的元素递增，并返回新值
        int incrementedValue = atomicArray.incrementAndGet(0);

        // 获取索引i处的元素，并以原子方式递增
        int prevIncrementedValue = atomicArray.getAndIncrement(0);

        // 以原子方式将索引i处的元素递减，并返回新值
        int decrementedValue = atomicArray.decrementAndGet(0);

        // 获取索引i处的元素，并以原子方式递减
        int prevDecrementedValue = atomicArray.getAndDecrement(0);
    }
}
